{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "1292e1ff-6878-4b90-adb6-f68cb7133e2d",
   "metadata": {},
   "source": [
    "Chapter 01\n",
    "\n",
    "# L1范数等距线\n",
    "《线性代数》 | 鸢尾花书：数学不难"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d467eac3-6021-4f8f-85e1-d0673eee4723",
   "metadata": {},
   "source": [
    "这段代码从数学角度展示了 **L1 范数**（曼哈顿范数）的几何形状，并将其与标准基向量 $e_1 = (1, 0)$ 和 $e_2 = (0, 1)$ 一起在二维平面中可视化。\n",
    "\n",
    "---\n",
    "\n",
    "首先，L1 范数定义为向量 $\\mathbf{x} = (x_1, x_2)$ 的绝对值和，即：\n",
    "\n",
    "$$\n",
    "\\|\\mathbf{x}\\|_1 = |x_1| + |x_2|\n",
    "$$\n",
    "\n",
    "代码中的变量 `xx` 和 `yy` 构成了一个二维网格，覆盖了从 $[-8, 8] \\times [-8, 8]$ 的平面区域。这相当于在平面上生成了 $1000 \\times 1000$ 个点：\n",
    "\n",
    "$$\n",
    "(xx, yy) = \\{(x, y) \\mid x, y \\in [-8, 8] \\}\n",
    "$$\n",
    "\n",
    "接着，对网格上的每个点 $(x, y)$ 计算其对应的 L1 范数值：\n",
    "\n",
    "$$\n",
    "zz = |x| + |y|\n",
    "$$\n",
    "\n",
    "得到的是一个二维数组 `zz`，其中每个元素代表对应网格点的 L1 范数。\n",
    "\n",
    "---\n",
    "\n",
    "在几何上，**L1 范数的等距线（即 $\\|\\mathbf{x}\\|_1 = c$ 的集合）是菱形**，其形状由以下等式描述：\n",
    "\n",
    "$$\n",
    "|x_1| + |x_2| = c, \\quad c \\in \\mathbb{R}^+\n",
    "$$\n",
    "\n",
    "例如，当 $c = 1$ 时，等距线对应于一个以原点为中心、顶点在 $(1, 0), (0, 1), (-1, 0), (0, -1)$ 的正方形（旋转了45°，看起来像菱形）。\n",
    "\n",
    "---\n",
    "\n",
    "代码随后绘制了从 $c = 1$ 到 $c = 8$ 的一系列等高线：\n",
    "\n",
    "$$\n",
    "\\{|x| + |y| = c \\mid c = 1, 2, ..., 8\\}\n",
    "$$\n",
    "\n",
    "这些等距线层层展开，形成一组菱形轮廓图，这正是 L1 范数等值集合的几何表示。\n",
    "\n",
    "---\n",
    "\n",
    "接下来绘制的是二维标准正交基向量：\n",
    "\n",
    "- $e_1 = (1, 0)$，即 x 轴正方向的单位向量\n",
    "- $e_2 = (0, 1)$，即 y 轴正方向的单位向量\n",
    "\n",
    "使用 `plt.quiver` 函数从原点出发分别绘制这两个向量。这两个向量定义了二维空间中最基本的坐标方向。\n",
    "\n",
    "---\n",
    "\n",
    "最终图像将包括：\n",
    "\n",
    "- 黑色的标准基向量箭头；\n",
    "- 多个颜色渐变的 L1 范数等距线（等高线）；\n",
    "- 坐标轴、网格线；\n",
    "- 设置坐标轴范围为 $[-8, 8]$；\n",
    "- 设置坐标轴比例为 1:1，以保真实几何形状（否则菱形会被拉伸）。\n",
    "\n",
    "---\n",
    "\n",
    "这段代码的核心思想是**用可视化方式展示 L1 范数的几何结构及其与标准基之间的关系**，非常适合用于教学“范数”概念、凸集几何结构或优化问题中的可行域展示。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "97900564-5f06-470f-818a-932cec1c1937",
   "metadata": {},
   "source": [
    "## 初始化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "bce53539-6416-496a-a1c6-695677729f17",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5a0ba361-566b-41ad-ae7a-d8ce0c9dba15",
   "metadata": {},
   "source": [
    "## 生成数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "ea92b022-30f3-47ed-a6ec-4cc2183c5021",
   "metadata": {},
   "outputs": [],
   "source": [
    "xx, yy = np.meshgrid(np.linspace(-8, 8, 1000), \n",
    "                     np.linspace(-8, 8, 1000))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5039ec44-0702-49a1-b3b1-839d2ddab2c0",
   "metadata": {},
   "source": [
    "## 计算 L1 范数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "4febd2f9-ac52-4ecb-80f7-4d97ba56fa6e",
   "metadata": {},
   "outputs": [],
   "source": [
    "zz = np.abs(xx) + np.abs(yy)  # L1 范数计算公式"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "460ab70a-f927-4c83-acbe-8f0466747590",
   "metadata": {},
   "source": [
    "## 定义标准基向量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "7dd96c7c-e730-495a-ae7c-5cfbc1677d82",
   "metadata": {},
   "outputs": [],
   "source": [
    "e1 = np.array([1, 0])\n",
    "e2 = np.array([0, 1])\n",
    "\n",
    "# 定义颜色\n",
    "color_e1 = [0, 0, 0]  # 黑色\n",
    "color_e2 = [0, 0, 0]  # 黑色"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "055be0b4-424f-4598-bcda-eb4d16e29974",
   "metadata": {},
   "source": [
    "## 可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "b8af5664-0dad-4c37-a954-df3db4dc943d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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MplSvj7++GNIkoRrr70W5eXlePfdd/HRRx/h/PPPx7nnnouOjg6utYc3Pdx+++343ve+h5kzZ2LVqlUwmUz4+9//zq3uRx55BB6PB7feeqvuGpMhV3s0LpcLZ599Ni666CJcddVVBilPjclkivlZkqRx7/HKddddh88++wxPP/200VLS0traikWLFmH16tVwOBxGy1FEMBjEsccei3vvvRfHHHMMrrnmGlx99dVYsWKF0dLS8uyzz2L16tVYs2YNtmzZgqeeegoPPPAAnnrqKaOlcY2hGcJYlp9kjVztH3zwAU477TS8++67OPHEEyO/O/7443HGGWdg6dKlrKXGIFf3xRdfjFdeeSXGJAKBACwWC+bPn2/IjSVXe/jB63K5cOqpp+L444/Hn//8Z+6q4fh8PuTk5ODvf/875s2bF3l/0aJF2Lp1KzZs2GCguvRcf/31ePHFF7Fx40Y0NjYaLSctL774IubNmweLxRJ5LxAIwGQywWw2w+v1xvyOJ+rr63HmmWfiiSeeiLy3YsUK3HPPPWhvbzdQWXpqa2txyy23YOHChZH37rnnHqxevRpfffWVJteYiBnCDA1rsyw/yRq52mfOnAm73Y7t27dHzHlsbAzNzc2or69nLXMccnX//ve/xz333BP52eVy4bvf/S6effZZHH/88SwlJkWudiB07OTUU0+NRCp4M2YAsNlsmDlzJtavXx9jzuElHF6RJAnXX389XnjhBbzzzjtCGDMAnH766di2bVvMe1dccQWmTZuGm2++mVtjBoATTjhh3HG1HTt2GPIMUcrw8PC4+89isdBRqnTotvUsA3p6eqSSkhLpwgsvlLZu3Spt375d+sUvfiFlZWVJW7duNVpeWhYtWiTV1NRIb7zxhvTVV19JV155pVReXi719fUZLU02e/bsEWa3dnt7uzRlyhTptNNOk9ra2qSOjo7IizeeeeYZKSsrS3ryySelL774Qlq8eLGUm5srNTc3Gy0tKT/96U8lp9MpvfPOOzF9Ozw8bLQ0xYiyW/ujjz6SrFartHTpUunrr7+W/va3v0k5OTnS6tWrjZaWlssuu0yqqamRXn31VWnPnj3S888/L5WWlko33XSTZteYiLu1hTBnSZKkTZs2SWeddZZUXFws5efnS9/+9rel119/3WhZsvD5fNLPf/5zqby8XMrPz5fOOOMM6d///rfRshQhkjmvWrVKApDwxSN//OMfpfr6eslms0nHHnss90eSkvXtqlWrjJamGFHMWZIk6ZVXXpFmzJgh2e12adq0adJjjz1mtCRZeDweadGiRVJdXZ3kcDikpqYm6fbbb5e8Xq9m15iI5kxVqQiCIAihmYhrzvwtxBEEQRDEQQ6ZM0EQBEFwBpkzQRAEQXAGmTNBEARBcAaZM0EQBEFwBpkzQRAEQXAGmTNBEARBcAaZM0EQBEFwBpkzQRAEQXAGmTNBEARBcAaZM0EQBEFwBpkzQRAEQXAGmTNBEARBcAaZM0EQBEFwBpkzQRAEQXAGmTNBEARBcAaZM0EQBEFwBpkzQRAEQXAGmTNBEARBcAaZM0EQBEFoyMaNG3HeeeehuroaJpMJL774ouI2yJwJgiAIQkOGhoZw1FFH4Q9/+IPqNqwa6iEIgiCIg545c+Zgzpw5GbVB5kwQBEFMCEZGxpCVNcakXb0hcyYIgiAmBKefvRIWi0PzdgOBUQCAx+OJed9ut8Nut2t+PYDMmSAIghAcm80Ga1YBPt96B7Nr5OXloba2Nua9JUuW4M4772RyPTJngiAIQmgcDge6u9rg8/kYXsMKk8kU8x6rWTNA5kwQBEFMAIqK8o2WoClkzgRBEAShIYODg9i5c2fk5z179mDr1q0oLi5GXV2drDZMkiRJrAQSBEEQxMHGO++8g1NPPXXc+5dddhn+/Oc/y2qDzJkgCIIgOIMyhBEEQRAEZ5A5EwRBEARnkDkTBEEQBGeQORMEQRAEZ5A5EwRBEARnkDkTBEEQBGeQORMEQRAEZ5A5EwRBEARnkDkTBEEQBGeQORMEQRAEZ5A5EwRBEARnkDkTBEEQBGf8/1Q42hm0x7U/AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 600x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(6, 6))\n",
    "\n",
    "# 绘制标准基向量 e1 和 e2\n",
    "plt.quiver(0, 0, e1[0], e1[1], \n",
    "           angles='xy', scale_units='xy', \n",
    "           scale=1, color=color_e1, \n",
    "           label='e1', zorder=1000)\n",
    "\n",
    "plt.quiver(0, 0, e2[0], e2[1], \n",
    "           angles='xy', scale_units='xy', \n",
    "           scale=1, color=color_e2, \n",
    "           label='e2', zorder=1000)\n",
    "\n",
    "# 绘制 L1 范数的等距线 \n",
    "contour = plt.contour(xx, yy, zz,\n",
    "                      levels=np.arange(1, 9), \n",
    "                      cmap='RdYlBu_r')  \n",
    "\n",
    "# 添加 colorbar\n",
    "cbar = plt.colorbar(contour)\n",
    "\n",
    "# 设置坐标轴范围\n",
    "plt.xlim(-8, 8)\n",
    "plt.ylim(-8, 8)\n",
    "\n",
    "# 绘制网格和坐标轴\n",
    "plt.axhline(0, color='black', linewidth=0.5)\n",
    "plt.axvline(0, color='black', linewidth=0.5)\n",
    "plt.xticks(np.arange(-8, 9, 2))\n",
    "plt.yticks(np.arange(-8, 9, 2))\n",
    "plt.grid(True, which='both', linestyle='--', linewidth=0.5, color='0.8')\n",
    "\n",
    "# 设置等比例显示\n",
    "plt.gca().set_aspect('equal', adjustable='box')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "28cf2fa2-b268-4779-a0e7-dcae74ae4a26",
   "metadata": {},
   "source": [
    "作者\t**生姜DrGinger**  \n",
    "脚本\t**生姜DrGinger**  \n",
    "视频\t**崔崔CuiCui**  \n",
    "开源资源\t[**GitHub**](https://github.com/Visualize-ML)  \n",
    "平台\t[**油管**](https://www.youtube.com/@DrGinger_Jiang)\t\t\n",
    "\t\t[**iris小课堂**](https://space.bilibili.com/3546865719052873)\t\t\n",
    "\t\t[**生姜DrGinger**](https://space.bilibili.com/513194466)  "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:base] *",
   "language": "python",
   "name": "conda-base-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
